How to reload staticfiles.json without restarting Django? 您所在的位置:网站首页 Managing files Django documentation Django How to reload staticfiles.json without restarting Django?

How to reload staticfiles.json without restarting Django?

2024-06-03 08:56| 来源: 网络整理| 查看: 265

I have a Django app deployed via docker image on Render and using whitenoise to manage staticfiles. The site has a page that renders a user_manual.html and embedded images in an iframe within my page/navbar structure. This generally works fine.

Now the issue: I have an admin page that allow site admins to upload a new user manual as a MS Word .docx file to my media dir. The upload process does these things:

save the user_manual.docx to a django model FileField. (This is because I need the uploaded file to survive a server rebuild from docker image which does may not contain this newest version. On server startup, I also run these steps below.) retrieve user_manual.html from database FileField and save into media folder. run pandoc to convert to .rst file and extract images run sphinx to build the user_manual.html and supporting files/structures. copy the sphinx build folder to my static directory call_command(‘collectstatic’, interactive=False) to run collectstatic

The above works fine. I can see the updated entry for user_manual.html in staticfiles.json and the new user_manual..html in the staticfiles dir. The new file is served when django restarts.

But, I want the new file to be served immediately and it is not. The browser console shows: Failed to load resource: the server responded with a status of 404 () and browser shows: Not Found The requested resource was not found on this server

If I restart the server, then the new user_manual.html is rendered. I infer that staticfiles.json is cached by either Django or whitenoise and the cache is not rebuilt when collectstatic is run.

Any suggestions on how can I get the new user manual.html to render without restarting the server?

(Separately, I attempted a couple of times to render this as an html string from the media folder, bypassing Django’s static file mechanism, but there were too many issues/complexities with css and images, etc.)

Many thanks in advance, Charlie



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有